package com.spa.application.dto.admin;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.spa.infrastructure.enums.dict.order.OrderStatusEnum;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
@JsonInclude
public class OrderDetailDTO {

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long orderId;

    private String orderNo;

    private OrderStatusEnum orderStatus;

    private String orderTotalPrice;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date serviceTime;

    private String payType;

    private String userName;

    private String userPhone;

    private String massagistName;

    private String massagistPhone;

    private String oldMassagistName;

    private String oldMassagistPhone;

    private Boolean transferFlag;

    private String shopName;

    private String travelPrice;

    private String travelDist;

    private String sourceAddress;

    private String serviceAddress;

    private String remark;

    private String serviceName;

    private String serviceDuration;

    private String servicePrice;

    private List<Ext> extList;

    private Integer massagistIncome;

    private Integer shopIncome;

    private Integer adminIncome;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date takeTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date departTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    @Data
    @JsonInclude
    public static class Ext {
        private String serviceName;

        private String extraServiceDuration;

        private String extraServicePrice;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date startTime;
    }

}
